1003D - Coins and Queries - CodeForces Solution


greedy *1600

Please click on ads to support us..

C++ Code:

// author: Ali Safwat
#include <bits/extc++.h>
#define Caraxes  ios_base :: sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
#define int long long int
#define F first
#define S second
using namespace std;

template< typename  T = int >
std :: vector < T > get(int size = 0, std :: istream& in_stream = std :: cin);

void Dracarys() {
    int n,q;
    cin >> n >> q;
    map < int, int > mp;
    for(int i = 0;i < n; ++i){
        int x;
        cin >> x;
        mp[x]++;
    }
    while(q--){
        int x;
        cin >> x;
        int ans = 0;
        for(int i = 31; i >=0; --i){
            int cnt = min(x >> i, mp[1LL << i]);
            ans += cnt;
            x-= (1LL << i) * cnt;
            if(x <= 0) break;
        }
        if(x != 0) ans = -1;
        cout << ans << '\n';
    }
}

signed main()
{
    Caraxes
    int test = 1;
    //cin >> test;
    while(test--) {
        Dracarys();
    }
}

template< typename  T>
std :: vector < T > get(int size , std :: istream& in_stream){
    if(!size){
        in_stream >> size;
    }
    std :: vector < T > array(size);
    for(auto& i : array)
        in_stream >> i;
    return array;
}


Comments

Submit
0 Comments
More Questions

1302. Deepest Leaves Sum
1209. Remove All Adjacent Duplicates in String II
994. Rotting Oranges
983. Minimum Cost For Tickets
973. K Closest Points to Origin
969. Pancake Sorting
967. Numbers With Same Consecutive Differences
957. Prison Cells After N Days
946. Validate Stack Sequences
921. Minimum Add to Make Parentheses Valid
881. Boats to Save People
497. Random Point in Non-overlapping Rectangles
528. Random Pick with Weight
470. Implement Rand10() Using Rand7()
866. Prime Palindrome
1516A - Tit for Tat
622. Design Circular Queue
814. Binary Tree Pruning
791. Custom Sort String
787. Cheapest Flights Within K Stops
779. K-th Symbol in Grammar
701. Insert into a Binary Search Tree
429. N-ary Tree Level Order Traversal
739. Daily Temperatures
647. Palindromic Substrings
583. Delete Operation for Two Strings
518. Coin Change 2
516. Longest Palindromic Subsequence
468. Validate IP Address
450. Delete Node in a BST